package flexconsole.model {
	import mx.collections.ListCollectionView;
	
	import org.puremvc.as3.interfaces.IProxy;
	
	/**
	 * Proxy for the Log message datastore.
	 *
	 * @author ivanchoo
	 *
	 */
	public interface ILogMessageProxy extends IProxy {
		/**
		 * Source XML object.
		 */
		function get source():XML;
		/**
		 * @private
		 */
		function set source(xml:XML):void;
		/**
		 * Related collection, useful for data bindings.
		 */
		function get collection():ListCollectionView;
		/**
		 * Returns the <code>level</code> value of a log XML item.
		 */
		function level(xml:XML):String;
		/**
		 * Returns the <code>date</code> value of a log XML item.
		 */
		function date(xml:XML):String;
		/**
		 * Returns the <code>category</code> value of a log XML item.
		 */
		function category(xml:XML):String;
		/**
		 * Returns the <code>message</code> body of a log XML item.
		 */
		function message(xml:XML):String;
		/**
		 * Adds a new log XML item.
		 */
		function add(xml:XML):void;
		/**
		 * Removes an existing log XML item.
		 */
		function remove(xml:XML):void;
		/**
		 * Removes all logs.
		 */
		function clear():void;
		/**
		 * Marks a log XML item.
		 */
		function mark(xml:XML):void;
		/**
		 * Returns true if the log XML item is marked.
		 */
		function isMarked(xml:XML):Boolean;
	}
}